package com.ruoyi.web.controller.system;

import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.system.domain.Client;
import com.ruoyi.system.service.IClientService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.SysClientAss;
import com.ruoyi.system.service.ISysClientAssService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 【请填写功能名称】Controller
 * 
 * @author ruoyi
 * @date 2023-12-28
 */
@RestController
@RequestMapping("/system/ass")
public class SysClientAssController extends BaseController
{
    @Resource
    private ISysClientAssService sysClientAssService;

    @Resource
    private IClientService clientService;

    /**
     * 查询【请填写功能名称】列表
     */
//    @PreAuthorize("@ss.hasPermi('system:ass:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysClientAss sysClientAss)
    {
        startPage();
        List<SysClientAss> list = sysClientAssService.selectSysClientAssList(sysClientAss);
        // 第一页需要查询创建的那条数据
//        Integer pageNum = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
//        if (pageNum != null && pageNum.intValue() == 1) {
//            //查询创建者
//            if (sysClientAss.getcId() != null) {
//                Client client = clientService.selectClientById(sysClientAss.getcId());
//                if (client != null) {
//                    SysClientAss ass = new SysClientAss();
//                    ass.setUserName(client.getCreateUserId());
//                    ass.setcId(sysClientAss.getcId());
//                    ass.setCreateBy(client.getCreateUserId());
//                    ass.setCreateTime(client.getCreateTime());
//                    if (list != null && list.size() > 0) {
//                        list.add(0, ass);
//                    } else {
//                        list = new ArrayList<>();
//                        list.add(ass);
//                    }
//                }
//            }
//        }
        return getDataTable(list);
    }

    /**
     * 导出【请填写功能名称】列表
     */
//    @PreAuthorize("@ss.hasPermi('system:ass:export')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysClientAss sysClientAss)
    {
        List<SysClientAss> list = sysClientAssService.selectSysClientAssList(sysClientAss);
        ExcelUtil<SysClientAss> util = new ExcelUtil<SysClientAss>(SysClientAss.class);
        util.exportExcel(response, list, "【请填写功能名称】数据");
    }

    /**
     * 获取【请填写功能名称】详细信息
     */
//    @PreAuthorize("@ss.hasPermi('system:ass:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") String id)
    {
        return success(sysClientAssService.selectSysClientAssById(id));
    }

    /**
     * 新增【请填写功能名称】
     */
//    @PreAuthorize("@ss.hasPermi('system:ass:add')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SysClientAss sysClientAss)
    {
        return toAjax(sysClientAssService.insertSysClientAss(sysClientAss));
    }

    /**
     * 修改【请填写功能名称】
     */
//    @PreAuthorize("@ss.hasPermi('system:ass:edit')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SysClientAss sysClientAss)
    {
        return toAjax(sysClientAssService.updateSysClientAss(sysClientAss));
    }

    /**
     * 删除【请填写功能名称】
     */
//    @PreAuthorize("@ss.hasPermi('system:ass:remove')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
	@DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable String[] ids)
    {
        return toAjax(sysClientAssService.deleteSysClientAssByIds(ids));
    }
}
